@period-year-norway/ngx-bootstrap
Version:
1 lines • 35.5 kB
Source Map (JSON)
{"version":3,"file":"period-year-norway-ngx-bootstrap-utils.mjs","sources":["../../../../src/utils/trigger.class.ts","../../../../src/utils/triggers.ts","../../../../src/utils/facade/browser.ts","../../../../src/utils/theme-provider.ts","../../../../src/utils/linked-list.class.ts","../../../../src/utils/decorators.ts","../../../../src/utils/utils.class.ts","../../../../src/utils/warn-once.ts","../../../../src/utils/period-year-norway-ngx-bootstrap-utils.ts"],"sourcesContent":["/**\r\n * @copyright Valor Software\r\n * @copyright Angular ng-bootstrap team\r\n */\r\n\r\nexport class Trigger {\r\n open: string;\r\n close?: string;\r\n\r\n constructor(open: string, close?: string) {\r\n this.open = open;\r\n this.close = close || open;\r\n }\r\n\r\n isManual(): boolean {\r\n return this.open === 'manual' || this.close === 'manual';\r\n }\r\n}\r\n","/**\r\n * @copyright Valor Software\r\n * @copyright Angular ng-bootstrap team\r\n */\r\nimport { Renderer2 } from '@angular/core';\r\nimport { Trigger } from './trigger.class';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type BsEventCallback = (event?: any) => boolean | void;\r\n\r\nexport interface ListenOptions {\r\n target?: HTMLElement;\r\n targets?: HTMLElement[];\r\n triggers?: string;\r\n outsideClick?: boolean;\r\n outsideEsc?: boolean;\r\n show?: BsEventCallback;\r\n hide?: BsEventCallback;\r\n toggle?: BsEventCallback;\r\n}\r\n\r\nconst DEFAULT_ALIASES = {\r\n hover: ['mouseover', 'mouseout'],\r\n focus: ['focusin', 'focusout']\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport function parseTriggers(triggers?: string, aliases: any = DEFAULT_ALIASES): Trigger[] {\r\n const trimmedTriggers = (triggers || '').trim();\r\n\r\n if (trimmedTriggers.length === 0) {\r\n return [];\r\n }\r\n\r\n const parsedTriggers = trimmedTriggers\r\n .split(/\\s+/)\r\n .map((trigger: string) => trigger.split(':'))\r\n .map((triggerPair: string[]) => {\r\n const alias = aliases[triggerPair[0]] || triggerPair;\r\n\r\n return new Trigger(alias[0], alias[1]);\r\n });\r\n\r\n const manualTriggers = parsedTriggers.filter((triggerPair: Trigger) =>\r\n triggerPair.isManual()\r\n );\r\n\r\n if (manualTriggers.length > 1) {\r\n throw new Error('Triggers parse error: only one manual trigger is allowed');\r\n }\r\n\r\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\r\n throw new Error('Triggers parse error: manual trigger can\\'t be mixed with other triggers');\r\n }\r\n\r\n return parsedTriggers;\r\n}\r\n\r\nexport function listenToTriggers(renderer: Renderer2,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n target: any,\r\n triggers: string,\r\n showFn: BsEventCallback,\r\n hideFn: BsEventCallback,\r\n toggleFn: BsEventCallback): () => void {\r\n const parsedTriggers = parseTriggers(triggers);\r\n const listeners: Array<() => void> = [];\r\n\r\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\r\n return Function.prototype as () => void;\r\n }\r\n\r\n parsedTriggers.forEach((trigger: Trigger) => {\r\n if (trigger.open === trigger.close) {\r\n listeners.push(renderer.listen(target, trigger.open, toggleFn));\r\n\r\n return;\r\n }\r\n\r\n listeners.push(renderer.listen(target, trigger.open, showFn));\r\n if (trigger.close) {\r\n listeners.push(renderer.listen(target, trigger.close, hideFn));\r\n }\r\n });\r\n\r\n return () => {\r\n listeners.forEach((unsubscribeFn) => unsubscribeFn());\r\n };\r\n}\r\n\r\nexport function listenToTriggersV2(renderer: Renderer2,\r\n options: ListenOptions): () => void {\r\n const parsedTriggers = parseTriggers(options.triggers);\r\n const target = options.target;\r\n // do nothing\r\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\r\n return Function.prototype as () => void;\r\n }\r\n\r\n // all listeners\r\n const listeners: Array<() => void> = [];\r\n\r\n // lazy listeners registration\r\n const _registerHide: Array<() => () => void> = [];\r\n const registerHide = () => {\r\n // add hide listeners to unregister array\r\n _registerHide.forEach((fn) => listeners.push(fn()));\r\n // register hide events only once\r\n _registerHide.length = 0;\r\n };\r\n\r\n // register open\\close\\toggle listeners\r\n parsedTriggers.forEach((trigger: Trigger) => {\r\n const useToggle = trigger.open === trigger.close;\r\n const showFn = useToggle ? options.toggle : options.show;\r\n\r\n if (!useToggle && trigger.close && options.hide) {\r\n const _hide = renderer.listen(target, trigger.close, options.hide);\r\n _registerHide.push(() => _hide);\r\n }\r\n\r\n if (showFn) {\r\n listeners.push(renderer.listen(target, trigger.open, () => showFn(registerHide)));\r\n }\r\n });\r\n\r\n return () => {\r\n listeners.forEach((unsubscribeFn: () => void) => unsubscribeFn());\r\n };\r\n}\r\n\r\nexport function registerOutsideClick(renderer: Renderer2,\r\n options: ListenOptions) {\r\n if (!options.outsideClick) {\r\n return Function.prototype;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return renderer.listen('document', 'click', (event: any) => {\r\n if (options.target && options.target.contains(event.target)) {\r\n return;\r\n }\r\n if (\r\n options.targets &&\r\n options.targets.some(target => target.contains(event.target))\r\n ) {\r\n return;\r\n }\r\n\r\n if (options.hide) {\r\n options.hide();\r\n }\r\n });\r\n}\r\n\r\nexport function registerEscClick(renderer: Renderer2,\r\n options: ListenOptions) {\r\n if (!options.outsideEsc) {\r\n return Function.prototype;\r\n }\r\n\r\n return renderer.listen('document', 'keyup.esc', (event) => {\r\n if (options.target && options.target.contains(event.target)) {\r\n return;\r\n }\r\n if (\r\n options.targets &&\r\n options.targets.some(target => target.contains(event.target))\r\n ) {\r\n return;\r\n }\r\n\r\n if (options.hide) {\r\n options.hide();\r\n }\r\n });\r\n}\r\n","/**\r\n * @license\r\n * Copyright Google Inc. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\n/**\r\n * JS version of browser APIs. This library can only run in the browser.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst win = (typeof window !== 'undefined' && window) || {} as any;\r\n\r\nexport { win as window };\r\nexport const document = win.document;\r\nexport const location = win.location;\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const gc = win.gc ? () => win.gc() : (): any => null;\r\nexport const performance = win.performance ? win.performance : null;\r\nexport const Event = win.Event;\r\nexport const MouseEvent = win.MouseEvent;\r\nexport const KeyboardEvent = win.KeyboardEvent;\r\nexport const EventTarget = win.EventTarget;\r\nexport const History = win.History;\r\nexport const Location = win.Location;\r\nexport const EventListener = win.EventListener;\r\n","import { window } from './facade/browser';\r\n\r\nexport type AvailableBsVersions = 'bs3' | 'bs4' | 'bs5';\r\n\r\ninterface IObjectKeys {\r\n [key: string]: boolean;\r\n}\r\n\r\nexport interface IBsVersion extends IObjectKeys{\r\n isBs3: boolean;\r\n isBs4: boolean;\r\n isBs5: boolean;\r\n}\r\n\r\nexport enum BsVerions {\r\n isBs3 = 'bs3',\r\n isBs4 = 'bs4',\r\n isBs5 = 'bs5'\r\n}\r\n\r\nlet guessedVersion: AvailableBsVersions;\r\n\r\nfunction _guessBsVersion(): AvailableBsVersions {\r\n if (typeof window.document === 'undefined') {\r\n return 'bs4';\r\n }\r\n const spanEl = window.document.createElement('span');\r\n spanEl.innerText = 'testing bs version';\r\n spanEl.classList.add('d-none');\r\n spanEl.classList.add('pl-1');\r\n window.document.head.appendChild(spanEl);\r\n const rect = spanEl.getBoundingClientRect();\r\n const checkPadding = window.getComputedStyle(spanEl).paddingLeft;\r\n if (!rect || (rect && rect.top !== 0)) {\r\n window.document.head.removeChild(spanEl);\r\n return 'bs3';\r\n }\r\n\r\n if (checkPadding && parseFloat(checkPadding)) {\r\n window.document.head.removeChild(spanEl);\r\n return 'bs4';\r\n }\r\n\r\n window.document.head.removeChild(spanEl);\r\n return 'bs5';\r\n}\r\n\r\nexport function setTheme(theme: AvailableBsVersions): void {\r\n guessedVersion = theme;\r\n}\r\n\r\n// todo: in ngx-bootstrap, bs4 will became a default one\r\nexport function isBs3(): boolean {\r\n if (typeof window === 'undefined') {\r\n return true;\r\n }\r\n\r\n if (typeof window.__theme === 'undefined') {\r\n if (guessedVersion) {\r\n return guessedVersion === 'bs3';\r\n }\r\n guessedVersion = _guessBsVersion();\r\n\r\n return guessedVersion === 'bs3';\r\n }\r\n\r\n return window.__theme === 'bs3';\r\n}\r\n\r\nexport function isBs4(): boolean {\r\n if (isBs3()) return false;\r\n\r\n if (guessedVersion) return guessedVersion === 'bs4';\r\n\r\n guessedVersion = _guessBsVersion();\r\n return guessedVersion === 'bs4';\r\n}\r\n\r\nexport function isBs5(): boolean {\r\n if (isBs3() || isBs4()) return false;\r\n\r\n if (guessedVersion) return guessedVersion === 'bs5';\r\n\r\n guessedVersion = _guessBsVersion();\r\n return guessedVersion === 'bs5';\r\n}\r\n\r\nexport function getBsVer(): IBsVersion {\r\n return {\r\n isBs3: isBs3(),\r\n isBs4: isBs4(),\r\n isBs5: isBs5()\r\n };\r\n}\r\n\r\nexport function currentBsVersion(): AvailableBsVersions {\r\n const bsVer = getBsVer();\r\n const resVersion = Object.keys(bsVer).find(key => bsVer[key]);\r\n return BsVerions[resVersion as keyof typeof BsVerions];\r\n}\r\n\r\n\r\n","interface ListNode<T> {\r\n value: T,\r\n next?: ListNode<T>,\r\n previous?: ListNode<T>\r\n}\r\n\r\nexport class LinkedList<T> {\r\n length = 0;\r\n protected head?: ListNode<T>;\r\n protected tail?: ListNode<T>;\r\n protected current?: ListNode<T>;\r\n protected asArray: T[] = [];\r\n\r\n get(position: number): T | undefined {\r\n if (this.length === 0 || position < 0 || position >= this.length) {\r\n return void 0;\r\n }\r\n\r\n let current = this.head;\r\n\r\n for (let index = 0; index < position; index++) {\r\n current = current?.next;\r\n }\r\n\r\n return current?.value;\r\n }\r\n\r\n add(value: T, position: number = this.length): void {\r\n if (position < 0 || position > this.length) {\r\n throw new Error('Position is out of the list');\r\n }\r\n\r\n const node: ListNode<T> = {\r\n value,\r\n next: undefined,\r\n previous: undefined\r\n };\r\n\r\n if (this.length === 0) {\r\n this.head = node;\r\n this.tail = node;\r\n this.current = node;\r\n } else {\r\n if (position === 0 && this.head) {\r\n // first node\r\n node.next = this.head;\r\n this.head.previous = node;\r\n this.head = node;\r\n } else if (position === this.length && this.tail) {\r\n // last node\r\n this.tail.next = node;\r\n node.previous = this.tail;\r\n this.tail = node;\r\n } else {\r\n // node in middle\r\n const currentPreviousNode = this.getNode(position - 1);\r\n const currentNextNode = currentPreviousNode?.next;\r\n if (currentPreviousNode && currentNextNode) {\r\n currentPreviousNode.next = node;\r\n currentNextNode.previous = node;\r\n node.previous = currentPreviousNode;\r\n node.next = currentNextNode;\r\n }\r\n }\r\n }\r\n this.length++;\r\n this.createInternalArrayRepresentation();\r\n }\r\n\r\n remove(position = 0): void {\r\n if (this.length === 0 || position < 0 || position >= this.length) {\r\n throw new Error('Position is out of the list');\r\n }\r\n\r\n if (position === 0 && this.head) {\r\n // first node\r\n this.head = this.head.next;\r\n\r\n if (this.head) {\r\n // there is no second node\r\n this.head.previous = undefined;\r\n } else {\r\n // there is no second node\r\n this.tail = undefined;\r\n }\r\n } else if (position === this.length - 1 && this.tail?.previous) {\r\n // last node\r\n this.tail = this.tail.previous;\r\n this.tail.next = undefined;\r\n } else {\r\n // middle node\r\n const removedNode = this.getNode(position);\r\n if (removedNode?.next && removedNode.previous) {\r\n removedNode.next.previous = removedNode.previous;\r\n removedNode.previous.next = removedNode.next;\r\n }\r\n }\r\n\r\n this.length--;\r\n this.createInternalArrayRepresentation();\r\n }\r\n\r\n set(position: number, value: T): void {\r\n if (this.length === 0 || position < 0 || position >= this.length) {\r\n throw new Error('Position is out of the list');\r\n }\r\n\r\n const node = this.getNode(position);\r\n if (node) {\r\n node.value = value;\r\n this.createInternalArrayRepresentation();\r\n }\r\n }\r\n\r\n toArray(): T[] {\r\n return this.asArray;\r\n }\r\n\r\n findAll(fn: (value: T, index: number) => boolean): { index: number, value: T }[] {\r\n let current = this.head;\r\n const result: { index: number, value: T }[] = [];\r\n\r\n if (!current) {\r\n return result;\r\n }\r\n\r\n for (let index = 0; index < this.length; index++) {\r\n if (!current) {\r\n return result;\r\n }\r\n if (fn(current.value, index)) {\r\n result.push({ index, value: current.value });\r\n }\r\n current = current.next;\r\n\r\n }\r\n\r\n return result;\r\n }\r\n\r\n // Array methods overriding start\r\n push(...args: T[]): number {\r\n args.forEach((arg: T) => {\r\n this.add(arg);\r\n });\r\n\r\n return this.length;\r\n }\r\n\r\n pop(): T | undefined {\r\n if (this.length === 0) {\r\n return undefined;\r\n }\r\n const last = this.tail;\r\n this.remove(this.length - 1);\r\n\r\n return last?.value;\r\n }\r\n\r\n unshift(...args: T[]): number {\r\n args.reverse();\r\n args.forEach((arg: T) => {\r\n this.add(arg, 0);\r\n });\r\n\r\n return this.length;\r\n }\r\n\r\n shift(): T | undefined {\r\n if (this.length === 0) {\r\n return undefined;\r\n }\r\n const lastItem = this.head?.value;\r\n this.remove();\r\n\r\n return lastItem;\r\n }\r\n\r\n forEach(fn: (value: T, index: number) => void): void {\r\n let current = this.head;\r\n for (let index = 0; index < this.length; index++) {\r\n if (!current) {\r\n return;\r\n }\r\n fn(current.value, index);\r\n current = current.next;\r\n }\r\n }\r\n\r\n indexOf(value: T): number {\r\n let current = this.head;\r\n let position = -1;\r\n\r\n for (let index = 0; index < this.length; index++) {\r\n if (!current) {\r\n return position;\r\n }\r\n if (current.value === value) {\r\n position = index;\r\n break;\r\n }\r\n current = current.next;\r\n }\r\n\r\n return position;\r\n }\r\n\r\n some(fn: (value: T) => boolean): boolean {\r\n let current = this.head;\r\n let result = false;\r\n while (current && !result) {\r\n if (fn(current.value)) {\r\n result = true;\r\n break;\r\n }\r\n current = current.next;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n every(fn: (value: T) => boolean): boolean {\r\n let current = this.head;\r\n let result = true;\r\n while (current && result) {\r\n if (!fn(current.value)) {\r\n result = false;\r\n }\r\n current = current.next;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n toString(): string {\r\n return '[Linked List]';\r\n }\r\n\r\n find(fn: (value: T, index: number) => boolean): T | void {\r\n let current = this.head;\r\n for (let index = 0; index < this.length; index++) {\r\n if (!current) {\r\n return;\r\n }\r\n if (fn(current.value, index)) {\r\n return current.value;\r\n }\r\n current = current.next;\r\n }\r\n }\r\n\r\n findIndex(fn: (value: T, index: number) => boolean): number {\r\n let current = this.head;\r\n for (let index = 0; index < this.length; index++) {\r\n if (!current) {\r\n return -1;\r\n }\r\n\r\n if (fn(current.value, index)) {\r\n return index;\r\n }\r\n\r\n current = current.next;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n protected getNode(position: number): ListNode<T>|undefined {\r\n if (this.length === 0 || position < 0 || position >= this.length) {\r\n throw new Error('Position is out of the list');\r\n }\r\n\r\n let current = this.head;\r\n\r\n for (let index = 0; index < position; index++) {\r\n current = current?.next;\r\n }\r\n\r\n return current;\r\n }\r\n\r\n protected createInternalArrayRepresentation(): void {\r\n const outArray: T[] = [];\r\n let current = this.head;\r\n\r\n while (current) {\r\n outArray.push(current.value);\r\n current = current.next;\r\n }\r\n this.asArray = outArray;\r\n }\r\n\r\n // Array methods overriding END\r\n}\r\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport function OnChange(): any {\r\n const sufix = 'Change';\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return function OnChangeHandler(target: any, propertyKey: string): void {\r\n const _key = ` __${propertyKey}Value`;\r\n Object.defineProperty(target, propertyKey, {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n get(): any {\r\n return this[_key];\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(value: any): void {\r\n const prevValue = this[_key];\r\n this[_key] = value;\r\n if (prevValue !== value && this[propertyKey + sufix]) {\r\n this[propertyKey + sufix].emit(value);\r\n }\r\n }\r\n });\r\n };\r\n}\r\n","import { window } from './facade/browser';\r\nimport { currentBsVersion } from './theme-provider';\r\n\r\nexport class Utils {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static reflow(element: any): void {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n ((bs: any): void => bs)(element.offsetHeight);\r\n }\r\n\r\n // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static getStyles(elem: any): any {\r\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\r\n // IE throws on elements created in popups\r\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\r\n let view = elem.ownerDocument.defaultView;\r\n\r\n if (!view || !view.opener) {\r\n view = window;\r\n }\r\n\r\n return view.getComputedStyle(elem);\r\n }\r\n\r\n static stackOverflowConfig(): { crossorigin?: string, integrity?: string, cdnLink: string } {\r\n const bsVer = currentBsVersion();\r\n return {\r\n crossorigin: bsVer !== 'bs3' ? \"anonymous\" : undefined,\r\n integrity: bsVer === 'bs5' ? 'sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We' : bsVer === 'bs4' ? 'sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2' : undefined,\r\n cdnLink: bsVer === 'bs5' ? 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css' : bsVer === 'bs4' ? 'https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css' : 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css',\r\n };\r\n }\r\n}\r\n","import { isDevMode } from '@angular/core';\r\nconst _messagesHash: { [key: string]: boolean } = {};\r\nconst _hideMsg = typeof console === 'undefined' || !('warn' in console);\r\n\r\nexport function warnOnce(msg: string): void {\r\n if (!isDevMode() || _hideMsg || msg in _messagesHash) {\r\n return;\r\n }\r\n\r\n _messagesHash[msg] = true;\r\n console.warn(msg);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["window"],"mappings":"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"}