From 7b42fcb727a2d070382276dd6496bfdda23b2722 Mon Sep 17 00:00:00 2001 From: "voraton.l" Date: Thu, 5 May 2022 15:41:06 +0700 Subject: [PATCH 1/3] Add typescript support for lib --- type.d.ts | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 type.d.ts diff --git a/type.d.ts b/type.d.ts new file mode 100644 index 00000000..d358d7ae --- /dev/null +++ b/type.d.ts @@ -0,0 +1,145 @@ +export {} + +declare global { + type MODE = 'opt-in' | 'opt-out' + + type AUTO_LANGUAGE_ORIGIN = 'browser' | 'document' + + type ModalLayout = 'box' | 'cloud' | 'bar' + + type ModalPosition = 'bottom left' | 'bottom right' | 'bottom center' | 'middle left' | 'middle right' | 'middle center' | 'top left' | 'top right' | 'top center' + + type GUITransition = 'zoom' | 'slide' + + type SettingLayout = 'box' | 'bar' + + type SettingPosition = 'left' | 'right' + + interface SavedCookieContent { + categories: string[] + revision: number + data?: null | Record | string> + rfc_cookie: boolean + consent_date: string + consent_uuid: string + last_consent_update: string + } + + interface GUIOptions { + consent_modal?: { + layout?: ModalLayout + position?: ModalPosition + transition?: GUITransition + swap_buttons?: boolean + }, + settings_modal?: { + layout?: SettingLayout + position?: SettingPosition + transition?: GUITransition + } + } + + interface UserPreferences { + accept_type: string + accepted_categories: string[] + rejected_categories: string[] + } + + type PrimaryButtonRole = 'accept_selected' | 'accept_all' + + type SecondaryButtonRole = 'settings' | 'accept_necessary' + + interface ButtonSetting { + text: string + role: Role + } + + interface ConsentModalLanguageSetting { + title?: string + description?: string + primary_btn?: ButtonSetting + secondary_btn?: ButtonSetting + revision_message?: string + } + + interface ToggleSetting { + value: string + enabled?: boolean + readonly?: boolean + } + + interface BlockSetting { + title: string + description: string + toggle?: ToggleSetting + } + + interface SettingsModalLanguageSetting { + title?: string + save_settings_btn?: string + accept_all_btn?: string + blocks?: BlockSetting[] + cookie_table_headers?: Record[] + cookie_table?: Record[] + } + + interface LanguageSetting { + consent_modal?: ConsentModalLanguageSetting + settings_modal?: SettingsModalLanguageSetting + } + + interface UserConfig { + autorun?: boolean + delay?: number + mode?: MODE + cookie_expiration?: number + cookie_necessary_only_expiration?: number + cookie_path?: string + cookie_domain?: string + cookie_same_site?: string + use_rfc_cookie?: boolean + force_consent?: boolean + revision?: number + current_lang?: string + auto_language?: string + autoclear_cookies?: boolean + page_scripts?: boolean + remove_cookie_tables?: boolean + hide_from_bots?: boolean + gui_options?: GUIOptions + onAccept?: (savedCookieContent: SavedCookieContent) => void + onChange?: (cookie: SavedCookieContent, changedCookieCategories: string[]) => void + onFirstAction? :(userPreferences: UserPreferences, cookie: SavedCookieContent) => void + languages?: Record + } + + interface ScriptAttribute { + name: string + value: any + } + + interface CookieConsent { + run(config: UserConfig): void + showSettings(delay: number): void + accept(_categories: string | string[], _exclusions?: string[]): void + hideSettings(): void + hide(): void + updateLanguage(lang: string, force: boolean): boolean + getUserPreferences(): UserPreferences + loadScript(src: string, callback: () => void | typeof onload, attrs?: ScriptAttribute[]): void + updateScripts(): void + show(delay?: number, create_modal?: boolean): void + eraseCookies(_cookies: string | string[], _path?: string, _domain?: string): void + validCookie(cookie_name: string): boolean + allowedCategory(cookie_category: string): boolean + set(field: string, data: Record): boolean + get(field: string, cookie_name?: string): Record + getConfig(field: Field): UserConfig[Field] + } + + function initCookieConsent(root?: HTMLElement):CookieConsent + + interface Window { + initCookieConsent: typeof initCookieConsent + } +} From 243a1c03008b75bfecfe4d80ad9715c86a75dc4f Mon Sep 17 00:00:00 2001 From: "voraton.l" Date: Thu, 5 May 2022 15:42:26 +0700 Subject: [PATCH 2/3] Fix indent --- type.d.ts | 166 +++++++++++++++++++++++++++--------------------------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/type.d.ts b/type.d.ts index d358d7ae..946224e5 100644 --- a/type.d.ts +++ b/type.d.ts @@ -16,33 +16,33 @@ declare global { type SettingPosition = 'left' | 'right' interface SavedCookieContent { - categories: string[] - revision: number - data?: null | Record | string> - rfc_cookie: boolean - consent_date: string - consent_uuid: string - last_consent_update: string + categories: string[] + revision: number + data?: null | Record | string> + rfc_cookie: boolean + consent_date: string + consent_uuid: string + last_consent_update: string } interface GUIOptions { - consent_modal?: { - layout?: ModalLayout - position?: ModalPosition - transition?: GUITransition - swap_buttons?: boolean - }, - settings_modal?: { - layout?: SettingLayout - position?: SettingPosition - transition?: GUITransition - } + consent_modal?: { + layout?: ModalLayout + position?: ModalPosition + transition?: GUITransition + swap_buttons?: boolean + }, + settings_modal?: { + layout?: SettingLayout + position?: SettingPosition + transition?: GUITransition + } } interface UserPreferences { - accept_type: string - accepted_categories: string[] - rejected_categories: string[] + accept_type: string + accepted_categories: string[] + rejected_categories: string[] } type PrimaryButtonRole = 'accept_selected' | 'accept_all' @@ -50,96 +50,96 @@ declare global { type SecondaryButtonRole = 'settings' | 'accept_necessary' interface ButtonSetting { - text: string - role: Role + text: string + role: Role } interface ConsentModalLanguageSetting { - title?: string - description?: string - primary_btn?: ButtonSetting - secondary_btn?: ButtonSetting - revision_message?: string + title?: string + description?: string + primary_btn?: ButtonSetting + secondary_btn?: ButtonSetting + revision_message?: string } interface ToggleSetting { - value: string - enabled?: boolean - readonly?: boolean + value: string + enabled?: boolean + readonly?: boolean } interface BlockSetting { - title: string - description: string - toggle?: ToggleSetting + title: string + description: string + toggle?: ToggleSetting } interface SettingsModalLanguageSetting { - title?: string - save_settings_btn?: string - accept_all_btn?: string - blocks?: BlockSetting[] - cookie_table_headers?: Record[] - cookie_table?: Record[] + title?: string + save_settings_btn?: string + accept_all_btn?: string + blocks?: BlockSetting[] + cookie_table_headers?: Record[] + cookie_table?: Record[] } interface LanguageSetting { - consent_modal?: ConsentModalLanguageSetting - settings_modal?: SettingsModalLanguageSetting + consent_modal?: ConsentModalLanguageSetting + settings_modal?: SettingsModalLanguageSetting } interface UserConfig { - autorun?: boolean - delay?: number - mode?: MODE - cookie_expiration?: number - cookie_necessary_only_expiration?: number - cookie_path?: string - cookie_domain?: string - cookie_same_site?: string - use_rfc_cookie?: boolean - force_consent?: boolean - revision?: number - current_lang?: string - auto_language?: string - autoclear_cookies?: boolean - page_scripts?: boolean - remove_cookie_tables?: boolean - hide_from_bots?: boolean - gui_options?: GUIOptions - onAccept?: (savedCookieContent: SavedCookieContent) => void - onChange?: (cookie: SavedCookieContent, changedCookieCategories: string[]) => void - onFirstAction? :(userPreferences: UserPreferences, cookie: SavedCookieContent) => void - languages?: Record + autorun?: boolean + delay?: number + mode?: MODE + cookie_expiration?: number + cookie_necessary_only_expiration?: number + cookie_path?: string + cookie_domain?: string + cookie_same_site?: string + use_rfc_cookie?: boolean + force_consent?: boolean + revision?: number + current_lang?: string + auto_language?: string + autoclear_cookies?: boolean + page_scripts?: boolean + remove_cookie_tables?: boolean + hide_from_bots?: boolean + gui_options?: GUIOptions + onAccept?: (savedCookieContent: SavedCookieContent) => void + onChange?: (cookie: SavedCookieContent, changedCookieCategories: string[]) => void + onFirstAction? :(userPreferences: UserPreferences, cookie: SavedCookieContent) => void + languages?: Record } interface ScriptAttribute { - name: string - value: any + name: string + value: any } interface CookieConsent { - run(config: UserConfig): void - showSettings(delay: number): void - accept(_categories: string | string[], _exclusions?: string[]): void - hideSettings(): void - hide(): void - updateLanguage(lang: string, force: boolean): boolean - getUserPreferences(): UserPreferences - loadScript(src: string, callback: () => void | typeof onload, attrs?: ScriptAttribute[]): void - updateScripts(): void - show(delay?: number, create_modal?: boolean): void - eraseCookies(_cookies: string | string[], _path?: string, _domain?: string): void - validCookie(cookie_name: string): boolean - allowedCategory(cookie_category: string): boolean - set(field: string, data: Record): boolean - get(field: string, cookie_name?: string): Record - getConfig(field: Field): UserConfig[Field] + run(config: UserConfig): void + showSettings(delay: number): void + accept(_categories: string | string[], _exclusions?: string[]): void + hideSettings(): void + hide(): void + updateLanguage(lang: string, force: boolean): boolean + getUserPreferences(): UserPreferences + loadScript(src: string, callback: () => void | typeof onload, attrs?: ScriptAttribute[]): void + updateScripts(): void + show(delay?: number, create_modal?: boolean): void + eraseCookies(_cookies: string | string[], _path?: string, _domain?: string): void + validCookie(cookie_name: string): boolean + allowedCategory(cookie_category: string): boolean + set(field: string, data: Record): boolean + get(field: string, cookie_name?: string): Record + getConfig(field: Field): UserConfig[Field] } function initCookieConsent(root?: HTMLElement):CookieConsent interface Window { - initCookieConsent: typeof initCookieConsent + initCookieConsent: typeof initCookieConsent } } From 263ec7c2e7ad1c8e1eee5281526d3a0675b1fd8b Mon Sep 17 00:00:00 2001 From: "voraton.l" Date: Wed, 11 May 2022 13:41:19 +0700 Subject: [PATCH 3/3] Add missing type --- type.d.ts | 169 +++++++++++++++++++++++++++--------------------------- 1 file changed, 85 insertions(+), 84 deletions(-) diff --git a/type.d.ts b/type.d.ts index 946224e5..34d64d88 100644 --- a/type.d.ts +++ b/type.d.ts @@ -16,33 +16,33 @@ declare global { type SettingPosition = 'left' | 'right' interface SavedCookieContent { - categories: string[] - revision: number - data?: null | Record | string> - rfc_cookie: boolean - consent_date: string - consent_uuid: string - last_consent_update: string + categories: string[] + revision: number + data?: null | Record | string> + rfc_cookie: boolean + consent_date: string + consent_uuid: string + last_consent_update: string } interface GUIOptions { - consent_modal?: { - layout?: ModalLayout - position?: ModalPosition - transition?: GUITransition - swap_buttons?: boolean - }, - settings_modal?: { - layout?: SettingLayout - position?: SettingPosition - transition?: GUITransition - } + consent_modal?: { + layout?: ModalLayout + position?: ModalPosition + transition?: GUITransition + swap_buttons?: boolean + }, + settings_modal?: { + layout?: SettingLayout + position?: SettingPosition + transition?: GUITransition + } } interface UserPreferences { - accept_type: string - accepted_categories: string[] - rejected_categories: string[] + accept_type: string + accepted_categories: string[] + rejected_categories: string[] } type PrimaryButtonRole = 'accept_selected' | 'accept_all' @@ -50,96 +50,97 @@ declare global { type SecondaryButtonRole = 'settings' | 'accept_necessary' interface ButtonSetting { - text: string - role: Role + text: string + role: Role } interface ConsentModalLanguageSetting { - title?: string - description?: string - primary_btn?: ButtonSetting - secondary_btn?: ButtonSetting - revision_message?: string + title?: string + description?: string + primary_btn?: ButtonSetting + secondary_btn?: ButtonSetting + revision_message?: string } interface ToggleSetting { - value: string - enabled?: boolean - readonly?: boolean + value: string + enabled?: boolean + readonly?: boolean } interface BlockSetting { - title: string - description: string - toggle?: ToggleSetting + title: string + description: string + toggle?: ToggleSetting + cookie_table_headers?: Record[] + cookie_table?: Record[] } interface SettingsModalLanguageSetting { - title?: string - save_settings_btn?: string - accept_all_btn?: string - blocks?: BlockSetting[] - cookie_table_headers?: Record[] - cookie_table?: Record[] + title?: string + save_settings_btn?: string + accept_all_btn?: string + reject_all_btn?: string + blocks?: BlockSetting[] } interface LanguageSetting { - consent_modal?: ConsentModalLanguageSetting - settings_modal?: SettingsModalLanguageSetting + consent_modal?: ConsentModalLanguageSetting + settings_modal?: SettingsModalLanguageSetting } interface UserConfig { - autorun?: boolean - delay?: number - mode?: MODE - cookie_expiration?: number - cookie_necessary_only_expiration?: number - cookie_path?: string - cookie_domain?: string - cookie_same_site?: string - use_rfc_cookie?: boolean - force_consent?: boolean - revision?: number - current_lang?: string - auto_language?: string - autoclear_cookies?: boolean - page_scripts?: boolean - remove_cookie_tables?: boolean - hide_from_bots?: boolean - gui_options?: GUIOptions - onAccept?: (savedCookieContent: SavedCookieContent) => void - onChange?: (cookie: SavedCookieContent, changedCookieCategories: string[]) => void - onFirstAction? :(userPreferences: UserPreferences, cookie: SavedCookieContent) => void - languages?: Record + autorun?: boolean + delay?: number + mode?: MODE + cookie_expiration?: number + cookie_necessary_only_expiration?: number + cookie_path?: string + cookie_domain?: string + cookie_same_site?: string + use_rfc_cookie?: boolean + force_consent?: boolean + revision?: number + current_lang?: string + auto_language?: AUTO_LANGUAGE_ORIGIN + autoclear_cookies?: boolean + page_scripts?: boolean + remove_cookie_tables?: boolean + hide_from_bots?: boolean + gui_options?: GUIOptions + onAccept?: (savedCookieContent: SavedCookieContent) => void + onChange?: (cookie: SavedCookieContent, changedCookieCategories: string[]) => void + onFirstAction? :(userPreferences: UserPreferences, cookie: SavedCookieContent) => void + languages?: Record } interface ScriptAttribute { - name: string - value: any + name: string + value: any } interface CookieConsent { - run(config: UserConfig): void - showSettings(delay: number): void - accept(_categories: string | string[], _exclusions?: string[]): void - hideSettings(): void - hide(): void - updateLanguage(lang: string, force: boolean): boolean - getUserPreferences(): UserPreferences - loadScript(src: string, callback: () => void | typeof onload, attrs?: ScriptAttribute[]): void - updateScripts(): void - show(delay?: number, create_modal?: boolean): void - eraseCookies(_cookies: string | string[], _path?: string, _domain?: string): void - validCookie(cookie_name: string): boolean - allowedCategory(cookie_category: string): boolean - set(field: string, data: Record): boolean - get(field: string, cookie_name?: string): Record - getConfig(field: Field): UserConfig[Field] + run(config: UserConfig): void + showSettings(delay: number): void + accept(_categories: string | string[], _exclusions?: string[]): void + hideSettings(): void + hide(): void + updateLanguage(lang: string, force: boolean): boolean + getUserPreferences(): UserPreferences + loadScript(src: string, callback: () => void | typeof onload, attrs?: ScriptAttribute[]): void + updateScripts(): void + show(delay?: number, create_modal?: boolean): void + eraseCookies(_cookies: string | string[], _path?: string, _domain?: string): void + validCookie(cookie_name: string): boolean + allowedCategory(cookie_category: string): boolean + set(field: string, data: Record): boolean + get(field: string, cookie_name?: string): Record + getConfig(field: Field): UserConfig[Field] } - function initCookieConsent(root?: HTMLElement):CookieConsent + function initCookieConsent(root?: HTMLElement): CookieConsent interface Window { - initCookieConsent: typeof initCookieConsent + initCookieConsent: typeof initCookieConsent } }